//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Management;
//using System.Net;
//using System.Net.NetworkInformation;
//using System.Net.Sockets;
//using System.Text;
//using Newtonsoft.Json;
//using Microsoft.Win32;

//namespace demo
//{
//    /// <summary>
//    /// 系统信息获取帮助类
//    /// </summary>
//    public static class SystemInfoHelper
//    {
//        /// <summary>
//        /// 获取系统信息并返回JSON格式字符串
//        /// </summary>
//        /// <returns>包含系统信息的JSON字符串</returns>
//        public static string GetSystemInfo()
//        {
//            try
//            {
//                var systemInfo = new
//                {
//                    ComputerName = GetComputerName(),
//                    IPAddress = GetLocalIPAddress(),
//                    OperatingSystem = GetOperatingSystemInfo(),
//                    SystemVersion = GetSystemVersion(),
//                    SystemArchitecture = GetSystemArchitecture(),
//                    ProcessorInfo = GetProcessorInfo(),
//                    MemoryInfo = GetMemoryInfo(),
//                    CollectionTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
//                };

//                return JsonConvert.SerializeObject(systemInfo, Formatting.Indented);
//            }
//            catch (Exception ex)
//            {
//                return JsonConvert.SerializeObject(new
//                {
//                    Error = "获取系统信息失败",
//                    Message = ex.Message,
//                    CollectionTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
//                }, Formatting.Indented);
//            }
//        }

//        /// <summary>
//        /// 获取计算机名称
//        /// </summary>
//        /// <returns>计算机名称</returns>
//        private static string GetComputerName()
//        {
//            try
//            {
//                return Environment.MachineName;
//            }
//            catch
//            {
//                return "未知";
//            }
//        }

//        /// <summary>
//        /// 获取本机IP地址
//        /// </summary>
//        /// <returns>IP地址信息</returns>
//        private static object GetLocalIPAddress()
//        {
//            try
//            {
//                var ipAddresses = new List<string>();
//                var host = Dns.GetHostEntry(Dns.GetHostName());

//                foreach (var ip in host.AddressList)
//                {
//                    if (ip.AddressFamily == AddressFamily.InterNetwork)
//                    {
//                        ipAddresses.Add(ip.ToString());
//                    }
//                }

//                // 获取活动网络接口的IP
//                var activeIP = "";
//                foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
//                {
//                    if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
//                        ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
//                    {
//                        if (ni.OperationalStatus == OperationalStatus.Up)
//                        {
//                            foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
//                            {
//                                if (ip.Address.AddressFamily == AddressFamily.InterNetwork &&
//                                    !IPAddress.IsLoopback(ip.Address))
//                                {
//                                    activeIP = ip.Address.ToString();
//                                    break;
//                                }
//                            }
//                        }
//                    }
//                    if (!string.IsNullOrEmpty(activeIP)) break;
//                }

//                return new
//                {
//                    ActiveIP = activeIP,
//                    AllIPAddresses = ipAddresses
//                };
//            }
//            catch (Exception ex)
//            {
//                return new
//                {
//                    ActiveIP = "获取失败",
//                    AllIPAddresses = new List<string>(),
//                    Error = ex.Message
//                };
//            }
//        }

//        /// <summary>
//        /// 获取操作系统信息
//        /// </summary>
//        /// <returns>操作系统信息</returns>
//        private static object GetOperatingSystemInfo()
//        {
//            try
//            {
//                var osVersion = Environment.OSVersion;
//                var osName = GetWindowsVersionName();

//                return new
//                {
//                    Name = osName,
//                    Version = osVersion.Version.ToString(),
//                    Platform = osVersion.Platform.ToString(),
//                    ServicePack = osVersion.ServicePack
//                };
//            }
//            catch (Exception ex)
//            {
//                return new
//                {
//                    Name = "未知",
//                    Version = "未知",
//                    Platform = "未知",
//                    ServicePack = "未知",
//                    Error = ex.Message
//                };
//            }
//        }

//        /// <summary>
//        /// 获取Windows版本名称
//        /// </summary>
//        /// <returns>Windows版本名称</returns>
//        private static string GetWindowsVersionName()
//        {
//            try
//            {
//                using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"))
//                {
//                    if (key != null)
//                    {
//                        var productName = key.GetValue("ProductName")?.ToString() ?? "未知";
//                        var displayVersion = key.GetValue("DisplayVersion")?.ToString();
//                        var releaseId = key.GetValue("ReleaseId")?.ToString();
//                        var currentBuild = key.GetValue("CurrentBuild")?.ToString();

//                        var versionInfo = productName;
//                        if (!string.IsNullOrEmpty(displayVersion))
//                        {
//                            versionInfo += $" (版本 {displayVersion})";
//                        }
//                        else if (!string.IsNullOrEmpty(releaseId))
//                        {
//                            versionInfo += $" (版本 {releaseId})";
//                        }

//                        if (!string.IsNullOrEmpty(currentBuild))
//                        {
//                            versionInfo += $" 内部版本 {currentBuild}";
//                        }

//                        return versionInfo;
//                    }
//                }

//                // 备用方法
//                var version = Environment.OSVersion.Version;
//                if (version.Major == 10)
//                {
//                    return version.Build >= 22000 ? "Windows 11" : "Windows 10";
//                }
//                else if (version.Major == 6)
//                {
//                    if (version.Minor == 3) return "Windows 8.1";
//                    if (version.Minor == 2) return "Windows 8";
//                    if (version.Minor == 1) return "Windows 7";
//                    if (version.Minor == 0) return "Windows Vista";
//                }
//                else if (version.Major == 5)
//                {
//                    if (version.Minor == 2) return "Windows Server 2003";
//                    if (version.Minor == 1) return "Windows XP";
//                    if (version.Minor == 0) return "Windows 2000";
//                }

//                return $"Windows {version.Major}.{version.Minor}";
//            }
//            catch
//            {
//                return "未知Windows版本";
//            }
//        }

//        /// <summary>
//        /// 获取系统版本（家庭版、专业版等）
//        /// </summary>
//        /// <returns>系统版本信息</returns>
//        private static string GetSystemVersion()
//        {
//            try
//            {
//                using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"))
//                {
//                    if (key != null)
//                    {
//                        var editionId = key.GetValue("EditionID")?.ToString();
//                        var productName = key.GetValue("ProductName")?.ToString();

//                        if (!string.IsNullOrEmpty(editionId))
//                        {
//                            switch (editionId.ToLower())
//                            {
//                                case "core":
//                                    return "家庭版";
//                                case "corecountryspecific":
//                                    return "家庭版 (特定国家)";
//                                case "coresingleLanguage":
//                                    return "家庭版 (单语言)";
//                                case "professional":
//                                    return "专业版";
//                                case "professionalworkstation":
//                                    return "专业工作站版";
//                                case "enterprise":
//                                    return "企业版";
//                                case "education":
//                                    return "教育版";
//                                case "ultimate":
//                                    return "旗舰版";
//                                case "starter":
//                                    return "简易版";
//                                case "homebasic":
//                                    return "家庭基础版";
//                                case "homepremium":
//                                    return "家庭高级版";
//                                default:
//                                    return editionId;
//                            }
//                        }

//                        if (!string.IsNullOrEmpty(productName))
//                        {
//                            if (productName.Contains("Home") || productName.Contains("家庭"))
//                                return "家庭版";
//                            if (productName.Contains("Pro") || productName.Contains("专业"))
//                                return "专业版";
//                            if (productName.Contains("Enterprise") || productName.Contains("企业"))
//                                return "企业版";
//                            if (productName.Contains("Ultimate") || productName.Contains("旗舰"))
//                                return "旗舰版";
//                            if (productName.Contains("Education") || productName.Contains("教育"))
//                                return "教育版";
//                        }
//                    }
//                }

//                return "标准版";
//            }
//            catch
//            {
//                return "未知版本";
//            }
//        }

//        /// <summary>
//        /// 获取系统架构（32位/64位）
//        /// </summary>
//        /// <returns>系统架构信息</returns>
//        private static object GetSystemArchitecture()
//        {
//            try
//            {
//                var is64Bit = Environment.Is64BitOperatingSystem;
//                var processArchitecture = Environment.Is64BitProcess ? "64位" : "32位";

//                return new
//                {
//                    OperatingSystem = is64Bit ? "64位" : "32位",
//                    CurrentProcess = processArchitecture,
//                    ProcessorArchitecture = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
//                };
//            }
//            catch (Exception ex)
//            {
//                return new
//                {
//                    OperatingSystem = "未知",
//                    CurrentProcess = "未知",
//                    ProcessorArchitecture = "未知",
//                    Error = ex.Message
//                };
//            }
//        }

//        /// <summary>
//        /// 获取处理器信息
//        /// </summary>
//        /// <returns>处理器信息</returns>
//        private static object GetProcessorInfo()
//        {
//            try
//            {
//                var processorCount = Environment.ProcessorCount;
//                var processorName = "未知";

//                try
//                {
//                    using (var searcher = new ManagementObjectSearcher("select * from Win32_Processor"))
//                    {
//                        foreach (ManagementObject obj in searcher.Get())
//                        {
//                            processorName = obj["Name"]?.ToString() ?? "未知";
//                            break;
//                        }
//                    }
//                }
//                catch
//                {
//                    // 如果WMI查询失败，使用环境变量
//                    processorName = Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER") ?? "未知";
//                }

//                return new
//                {
//                    Name = processorName,
//                    CoreCount = processorCount
//                };
//            }
//            catch (Exception ex)
//            {
//                return new
//                {
//                    Name = "未知",
//                    CoreCount = 0,
//                    Error = ex.Message
//                };
//            }
//        }

//        /// <summary>
//        /// 获取内存信息
//        /// </summary>
//        /// <returns>内存信息</returns>
//        private static object GetMemoryInfo()
//        {
//            try
//            {
//                var totalMemory = 0L;
//                var availableMemory = 0L;

//                try
//                {
//                    using (var searcher = new ManagementObjectSearcher("select * from Win32_ComputerSystem"))
//                    {
//                        foreach (ManagementObject obj in searcher.Get())
//                        {
//                            totalMemory = Convert.ToInt64(obj["TotalPhysicalMemory"]);
//                            break;
//                        }
//                    }

//                    using (var searcher = new ManagementObjectSearcher("select * from Win32_OperatingSystem"))
//                    {
//                        foreach (ManagementObject obj in searcher.Get())
//                        {
//                            availableMemory = Convert.ToInt64(obj["FreePhysicalMemory"]) * 1024;
//                            break;
//                        }
//                    }
//                }
//                catch
//                {
//                    // WMI查询失败时的备用方案
//                }

//                return new
//                {
//                    TotalMemoryMB = totalMemory > 0 ? (totalMemory / 1024 / 1024).ToString() + " MB" : "未知",
//                    TotalMemoryGB = totalMemory > 0 ? Math.Round((double)totalMemory / 1024 / 1024 / 1024, 2).ToString() + " GB" : "未知",
//                    AvailableMemoryMB = availableMemory > 0 ? (availableMemory / 1024 / 1024).ToString() + " MB" : "未知",
//                    WorkingSet = (Environment.WorkingSet / 1024 / 1024).ToString() + " MB"
//                };
//            }
//            catch (Exception ex)
//            {
//                return new
//                {
//                    TotalMemoryMB = "未知",
//                    TotalMemoryGB = "未知",
//                    AvailableMemoryMB = "未知",
//                    WorkingSet = "未知",
//                    Error = ex.Message
//                };
//            }
//        }
//    }
//}